﻿using Script.Systems;

public class GameSystem : Feature
{
    public GameSystem (Contexts contexts)
    {
        Add (new PlayerSpawnSystem (contexts));

        Add (new InputSystem (contexts));

        Add (new InputProcessSystem (contexts));

        Add (new UpdateTimerSystem (contexts));

        Add (new EnemySpawnSystem (contexts));

        Add (new FollowTargetSystem (contexts));

        Add (new FireSystem (contexts));

        Add (new ActionSystem (contexts));

        Add (new AddViewSystem (contexts));

        Add (new MoveSystem (contexts));

        Add (new RotSystem (contexts));

        Add (new LifeTimeSystem (contexts));

        Add (new PhysicSystem (contexts));
        
        Add (new SyncPosSystem (contexts));

        Add (new GameEventSystems (contexts));

        //清理
        Add (new CleanUpSystem (contexts));
        Add (new DestorySystem (contexts));
    }
}

public class FixedUpdateGameSystem : Feature
{
    public FixedUpdateGameSystem (Contexts contexts)
    {
        Add (new MoveSystem (contexts));

        Add (new RotSystem (contexts));
    }
}